package org.nlp.algo.feature.chi;

/**
 * ABCD对象
 * 
 * @author kongxp 每一个词都有ABCD四个属性 a：在这个分类下包含这个词的文档数量 b：不在该分类下包含这个词的文档数量
 *         c：在这个分类下不包含这个词的文档数量 d：不在该分类下，且不包含这个词的文档数量
 */
public class Abcd implements Comparable<Abcd>{
	String word;
	int a;
	int b;
	int c;
	int d;
	int N;
	
	public String getWord() {
		return word;
	}
	public Abcd(int a, int b, int c, int d, int n,String word) {
		super();
		this.a = a;
		this.b = b;
		this.c = c;
		this.d = d;
		N = n;
		this.word = word;
	}
	@Override
	public String toString() {
		return word+" a="+a+",b="+b+",c="+c+",d="+d+",n="+N+" "+CHI();
	}
	@Override
	public int compareTo(Abcd o) {
		return o.CHI().compareTo(CHI());
	}
	
	//开方检验（CHI） = ((a*d)-(b*c))*((a*d)-(b*c))*n*1.0 /( (a+c)*(a+b)*(b+d)*(c+d) )
	public Double CHI(){
		return ((a*d)-(b*c))*((a*d)-(b*c))*N*1.0 /((a+c)*(a+b)*(b+d)*(c+d));
	}
	
	

}
